# demo04_extend.py
# 定义父类
class Animal:
    def __init__(self, name):
        self.name = name
    def eat(self):
        print(f'{self.name}正在吃东西')
    def drink(self):
        print(f'{self.name}正在喝水')
    def run(self):
        print(f'{self.name}正在奔跑')
    def sleep(self):
        print(f'{self.name}正在睡觉')

# 定义子类，继承父类
class Dog(Animal):
    # 给Dog类添加年龄、颜色属性；添加方法，调用这些属性。
    def __init__(self, name, age, color):
        # 如果子类有构造方法，不会自动调用父类的构造方法
        # 需要手动调用父类的构造方法才可以继承父类的属性
        Animal.__init__(self, name)
        self.age = age
        self.color = color
    def bark(self):
        print(f'{self.name}正在汪汪叫')
    def say(self):
        print(f'我叫{self.name}，我今年{self.age}岁了，颜色是{self.color}')

if __name__ == '__main__':
    d1 = Dog('大黄', 2, '杏黄')
    # print(d1.name)
    d1.say()
    d1.eat()
    d1.drink()
    d1.run()
    d1.sleep()
    d1.bark()
